Merge pull request '[EW][Job Quests][SGE] Added SGE job quests.' (#46) from kaiserbh/Questionable:master into master

Reviewed-on: #46
This commit is contained in:
Liza 2024-09-16 15:05:40 +00:00
commit 43b796561b
11 changed files with 987 additions and 5 deletions

View File

@ -0,0 +1,79 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039243,
"Position": {
"X": -90.28766,
"Y": 20,
"Z": 85.55737
},
"TerritoryId": 129,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Limsa Lominsa",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039265,
"Position": {
"X": -27.542603,
"Y": 42.597717,
"Z": 163.7445
},
"TerritoryId": 134,
"InteractionType": "Interact",
"AetheryteShortcut": "Middle La Noscea - Summerford Farms",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039265,
"Position": {
"X": -27.542603,
"Y": 42.597717,
"Z": 163.7445
},
"TerritoryId": 134,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Middle La Noscea - Summerford Farms",
"Fly": true,
"DialogueChoices": [
{
"Type": "YesNo",
"Prompt": "TEXT_AKTKBB101_04067_Q3_000_000",
"ExcelSheet": "quest/040/AktKbb101_04067",
"Yes": true
}
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,269 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"InteractionType": "UseItem",
"ItemId": 35873,
"Position": {
"X": -25.441345,
"Y": 42.597717,
"Z": 162.65016
},
"TerritoryId": 134,
"AetheryteShortcut": "Middle La Noscea - Summerford Farms",
"Fly": true,
"Comment": "Try to use the coffer Bookwyrm's Attire Coffer (IL 385)",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
},
"StepIf": {
"Item": {
"NotInInventory": true
}
}
}
},
{
"TerritoryId": 134,
"InteractionType": "EquipItem",
"ItemId": 35778,
"AetheryteShortcut": "Middle La Noscea - Summerford Farms",
"Fly": true,
"Comment": "Try to Equip Stonegold Milpreves",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
},
"StepIf": {
"Item": {
"NotInInventory": true
}
}
}
},
{
"TerritoryId": 131,
"InteractionType": "EquipRecommended"
},
{
"DataId": 1039265,
"Position": {
"X": -27.542603,
"Y": 42.597717,
"Z": 163.7445
},
"TerritoryId": 134,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Middle La Noscea - Summerford Farms",
"Fly": true,
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039244,
"Position": {
"X": 62.05847,
"Y": 207,
"Z": 49.332397
},
"TerritoryId": 478,
"InteractionType": "Interact",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 2011759,
"Position": {
"X": 20.065613,
"Y": 215.44214,
"Z": -108.171265
},
"TerritoryId": 478,
"InteractionType": "Interact",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1039246,
"Position": {
"X": 71.64111,
"Y": 213.03185,
"Z": -110.7348
},
"TerritoryId": 478,
"InteractionType": "Interact",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1039247,
"Position": {
"X": 68.7113,
"Y": 212.84532,
"Z": -109.9718
},
"TerritoryId": 478,
"InteractionType": "Interact",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1039248,
"Position": {
"X": -612.2988,
"Y": 146.86842,
"Z": 42.435303
},
"TerritoryId": 399,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "Idyllshire",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
},
"AethernetShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1039248,
"Position": {
"X": -612.2988,
"Y": 146.86842,
"Z": 42.435303
},
"StopDistance": 5,
"TerritoryId": 399,
"InteractionType": "SinglePlayerDuty",
"Fly": true,
"AetheryteShortcut": "Idyllshire",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [399],
"InSameTerritory": true
},
"AethernetShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 8,
"Steps": [
{
"DataId": 1039248,
"Position": {
"X": -612.2988,
"Y": 146.86842,
"Z": 42.435303
},
"TerritoryId": 399,
"InteractionType": "Interact",
"StopDistance": 5,
"Fly": true,
"AetheryteShortcut": "Idyllshire",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AetheryteShortcutIf": {
"InTerritory": [399],
"InSameTerritory": true
},
"AethernetShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039249,
"Position": {
"X": 0.3508911,
"Y": 210.99998,
"Z": -17.746277
},
"TerritoryId": 478,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,199 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039249,
"Position": {
"X": 0.3508911,
"Y": 210.99998,
"Z": -17.746277
},
"TerritoryId": 478,
"InteractionType": "AcceptQuest",
"StopDistance": 5,
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039250,
"Position": {
"X": -29.251587,
"Y": -2.0576189,
"Z": -161.08954
},
"TerritoryId": 141,
"InteractionType": "Interact",
"AetheryteShortcut": "Central Thanalan - Black Brush Station"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1039256,
"Position": {
"X": 59.03711,
"Y": 2.9501379,
"Z": -225.97089
},
"TerritoryId": 141,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"Position": {
"X": 177.52213,
"Y": -3.5157094,
"Z": -133.6495
},
"TerritoryId": 141,
"Fly": true,
"InteractionType": "Combat",
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 14031,
"MinimumKillCount": 1
}
]
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1039263,
"Position": {
"X": 185.25977,
"Y": -4.128851,
"Z": -126.78729
},
"TerritoryId": 141,
"InteractionType": "Interact",
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1039258,
"Position": {
"X": 122.72827,
"Y": 0.111846395,
"Z": -215.22852
},
"TerritoryId": 141,
"InteractionType": "Interact",
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 6,
"Steps": [
{
"DataId": 1039271,
"Position": {
"X": 122.819824,
"Y": 0.10310017,
"Z": -215.2591
},
"TerritoryId": 141,
"InteractionType": "Interact",
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 7,
"Steps": [
{
"DataId": 1039271,
"Position": {
"X": 122.819824,
"Y": 0.10310017,
"Z": -215.2591
},
"TerritoryId": 141,
"InteractionType": "Interact",
"AetheryteShortcut": "Central Thanalan - Black Brush Station",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039249,
"Position": {
"X": 0.3508911,
"Y": 210.99998,
"Z": -17.746277
},
"TerritoryId": 478,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,135 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039249,
"Position": {
"X": 0.3508911,
"Y": 210.99998,
"Z": -17.746277
},
"TerritoryId": 478,
"InteractionType": "AcceptQuest",
"DialogueChoices": [
{
"Type": "List",
"Prompt": "TEXT_AKTKBB121_04070_Q1_000_000",
"Answer": "TEXT_AKTKBB121_04070_A1_000_001"
}
],
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039274,
"Position": {
"X": 246.93665,
"Y": -24.995794,
"Z": 235.4314
},
"TerritoryId": 138,
"InteractionType": "Interact",
"AetheryteShortcut": "Western La Noscea - Aleport"
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1039275,
"Position": {
"X": 236.9878,
"Y": -24.792122,
"Z": 202.594
},
"TerritoryId": 138,
"InteractionType": "Interact",
"AetheryteShortcut": "Western La Noscea - Aleport",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1039276,
"Position": {
"X": 239.79541,
"Y": -24.721268,
"Z": 205.34058
},
"TerritoryId": 138,
"InteractionType": "Action",
"AetheryteShortcut": "Western La Noscea - Aleport",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
},
"Action": "Diagnosis"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"DataId": 1039279,
"Position": {
"X": 239.9176,
"Y": -24.724764,
"Z": 205.24902
},
"TerritoryId": 138,
"InteractionType": "Interact",
"AetheryteShortcut": "Western La Noscea - Aleport",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039249,
"Position": {
"X": 0.3508911,
"Y": 210.99998,
"Z": -17.746277
},
"TerritoryId": 478,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,182 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039249,
"Position": {
"X": 0.3508911,
"Y": 210.99998,
"Z": -17.746277
},
"TerritoryId": 478,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1012133,
"Position": {
"X": -26.840637,
"Y": 206.49944,
"Z": 28.67163
},
"TerritoryId": 478,
"InteractionType": "Interact",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"Position": {
"X": -501.8255,
"Y": 147.54488,
"Z": -191.78416
},
"TerritoryId": 399,
"Fly": true,
"InteractionType": "Combat",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AethernetShortcutIf": {
"InSameTerritory": true
}
},
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 14030,
"MinimumKillCount": 1
}
]
}
]
},
{
"Sequence": 3,
"Steps": [
{
"DataId": 1039282,
"Position": {
"X": -504.87527,
"Y": 147.53165,
"Z": -199.17603
},
"TerritoryId": 399,
"InteractionType": "Action",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AethernetShortcutIf": {
"InSameTerritory": true
}
},
"Action": "Diagnosis",
"Comment": "This might get stuck if we are high level and killed the mob too fast?, we ended up locking ourselves on eukrasia aura, Diagnosis can't be casted!"
}
]
},
{
"Sequence": 4,
"Steps": [
{
"Position": {
"X": -383.24777,
"Y": 147.98257,
"Z": 52.931572
},
"TerritoryId": 399,
"Fly": true,
"InteractionType": "Combat",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AethernetShortcutIf": {
"InSameTerritory": true
}
},
"EnemySpawnType": "AutoOnEnterArea",
"ComplexCombatData": [
{
"DataId": 14029,
"MinimumKillCount": 2
}
]
}
]
},
{
"Sequence": 5,
"Steps": [
{
"DataId": 1039284,
"Position": {
"X": -382.49792,
"Y": 147.96011,
"Z": 47.53174
},
"TerritoryId": 399,
"Fly": false,
"InteractionType": "Interact",
"AethernetShortcut": [
"[Idyllshire] Aetheryte Plaza",
"[Idyllshire] Prologue Gate (Western Hinterlands)"
],
"SkipConditions": {
"AethernetShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039249,
"Position": {
"X": 0.3508911,
"Y": 210.99998,
"Z": -17.746277
},
"TerritoryId": 478,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -0,0 +1,92 @@
{
"$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
"Author": "kaiser",
"QuestSequence": [
{
"Sequence": 0,
"Steps": [
{
"DataId": 1039249,
"Position": {
"X": 0.3508911,
"Y": 210.99998,
"Z": -17.746277
},
"TerritoryId": 478,
"InteractionType": "AcceptQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 1,
"Steps": [
{
"DataId": 1039288,
"Position": {
"X": 212.9701,
"Y": 52.213486,
"Z": -787.50287
},
"TerritoryId": 398,
"InteractionType": "SinglePlayerDuty",
"Fly": true,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 2,
"Steps": [
{
"DataId": 1039288,
"Position": {
"X": 212.9701,
"Y": 52.213486,
"Z": -787.50287
},
"TerritoryId": 398,
"InteractionType": "Interact",
"Fly": true,
"AetheryteShortcut": "The Dravanian Forelands - Tailfeather",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
},
{
"Sequence": 255,
"Steps": [
{
"DataId": 1039280,
"Position": {
"X": 1.2054443,
"Y": 210.99997,
"Z": -16.494995
},
"TerritoryId": 478,
"InteractionType": "CompleteQuest",
"AetheryteShortcut": "Idyllshire",
"SkipConditions": {
"AetheryteShortcutIf": {
"InSameTerritory": true
}
}
}
]
}
]
}

View File

@ -876,6 +876,9 @@
"Heavy Shot",
"Cure",
"Cure II",
"Eukrasia",
"Diagnosis",
"Eukrasian Diagnosis",
"Esuna",
"Physick",
"Aspected Benefic",

View File

@ -15,6 +15,9 @@ public sealed class ActionConverter() : EnumConverter<EAction>(Values)
{ EAction.HeavyShot, "Heavy Shot" },
{ EAction.Cure, "Cure" },
{ EAction.Cure2, "Cure II" },
{ EAction.Eukrasia, "Eukrasia"},
{ EAction.Diagnosis, "Diagnosis"},
{ EAction.EukrasianDiagnosis, "Eukrasian Diagnosis"},
{ EAction.Esuna, "Esuna" },
{ EAction.Physick, "Physick" },
{ EAction.AspectedBenefic, "Aspected Benefic" },

View File

@ -14,6 +14,9 @@ public enum EAction
HeavyShot = 97,
Cure = 120,
Cure2 = 135,
Eukrasia = 24290,
Diagnosis = 24284,
EukrasianDiagnosis = 24291,
Esuna = 7568,
Physick = 190,
AspectedBenefic = 3595,

View File

@ -1,9 +1,6 @@
using System;
using System;
using System.Collections.Generic;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects.Types;
using FFXIVClientStructs.FFXIV.Client.Game;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Questionable.Controller.Steps.Common;
using Questionable.Functions;
@ -60,6 +57,21 @@ internal static class Action
if (gameObject.IsTargetable)
{
if (action == EAction.Diagnosis)
{
uint eukrasiaAura = 2606;
// If SGE have Eukrasia status, we need to remove it.
if (gameFunctions.HasStatus(eukrasiaAura))
{
if (GameFunctions.RemoveStatus(eukrasiaAura))
{
// Introduce a delay of 2 seconds before using the next action (otherwise it will try and use Eukrasia Diagnosis)
_continueAt = DateTime.Now.AddSeconds(2);
return true;
}
}
}
_usedAction = gameFunctions.UseAction(gameObject, action);
_continueAt = DateTime.Now.AddSeconds(0.5);
return true;
@ -105,4 +117,4 @@ internal static class Action
public override string ToString() => $"Action({action})";
}
}
}

View File

@ -308,6 +308,11 @@ internal sealed unsafe class GameFunctions
StatusManager* statusManager = battleChara->GetStatusManager();
return statusManager->HasStatus(statusId);
}
public static bool RemoveStatus(uint statusId)
{
return StatusManager.ExecuteStatusOff(statusId);
}
public bool Mount()
{