Update quest battle metadata

This commit is contained in:
Liza 2025-02-22 22:28:04 +01:00
parent 22aa81cf75
commit ed797143b3
Signed by: liza
GPG Key ID: 2C41B84815CF6445
43 changed files with 106 additions and 31 deletions

View File

@ -141,7 +141,8 @@
"TerritoryId": 141, "TerritoryId": 141,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
}, },
"Fly": true "Fly": true
} }

View File

@ -36,7 +36,8 @@
"TerritoryId": 137, "TerritoryId": 137,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
}, },
"AetheryteShortcut": "Eastern La Noscea - Wineport", "AetheryteShortcut": "Eastern La Noscea - Wineport",
"Fly": true "Fly": true

View File

@ -117,7 +117,8 @@
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
}, },
"Fly": true "Fly": true
} }

View File

@ -119,7 +119,8 @@
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -251,7 +251,8 @@
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
}, },
"Fly": true "Fly": true
} }

View File

@ -140,7 +140,8 @@
"TerritoryId": 148, "TerritoryId": 148,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -114,6 +114,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true, "Enabled": true,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"Healer NPC is only killed after the boss dies; all NPCs need to be killed for the duty to complete" "Healer NPC is only killed after the boss dies; all NPCs need to be killed for the duty to complete"
] ]

View File

@ -31,6 +31,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": false, "Enabled": false,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"AI doesn't automatically target newly spawning adds until after the boss died, and dies (tested on CNJ)" "AI doesn't automatically target newly spawning adds until after the boss died, and dies (tested on CNJ)"
] ]

View File

@ -79,6 +79,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true, "Enabled": true,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"(Phase 1) Healer NPCs are only killed after the boss dies - allied NPCs will kill them eventually; all NPCs need to be killed for the duty to complete" "(Phase 1) Healer NPCs are only killed after the boss dies - allied NPCs will kill them eventually; all NPCs need to be killed for the duty to complete"
] ]

View File

@ -71,6 +71,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": false, "Enabled": false,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"(Phase 1, second enemy group) Stuck with enemy being out of sight -- but still able to attack you (tested on ACN)" "(Phase 1, second enemy group) Stuck with enemy being out of sight -- but still able to attack you (tested on ACN)"
] ]

View File

@ -75,7 +75,8 @@
"TerritoryId": 134, "TerritoryId": 134,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -31,6 +31,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": false, "Enabled": false,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"AI doesn't automatically target newly spawning adds until after the boss died (requires healing luck on ACN)" "AI doesn't automatically target newly spawning adds until after the boss died (requires healing luck on ACN)"
] ]

View File

@ -60,6 +60,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true, "Enabled": true,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"(Phase 1) Kills PGL NPCs and then the boss - allied NPCs will kill most other NPCs eventually; all NPCs need to be killed for the duty to complete" "(Phase 1) Kills PGL NPCs and then the boss - allied NPCs will kill most other NPCs eventually; all NPCs need to be killed for the duty to complete"
] ]

View File

@ -46,7 +46,8 @@
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -80,7 +80,8 @@
"TerritoryId": 130, "TerritoryId": 130,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
}, },
"AetheryteShortcut": "Ul'dah", "AetheryteShortcut": "Ul'dah",
"AethernetShortcut": [ "AethernetShortcut": [

View File

@ -90,7 +90,8 @@
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
}, },
"AetheryteShortcut": "East Shroud - Hawthorne Hut", "AetheryteShortcut": "East Shroud - Hawthorne Hut",
"SkipConditions": { "SkipConditions": {

View File

@ -65,7 +65,8 @@
"TerritoryId": 135, "TerritoryId": 135,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
}, },
"AethernetShortcut": [ "AethernetShortcut": [
"[Limsa Lominsa] The Aftcastle", "[Limsa Lominsa] The Aftcastle",

View File

@ -60,7 +60,8 @@
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
}, },
"AetheryteShortcut": "Western Thanalan - Horizon" "AetheryteShortcut": "Western Thanalan - Horizon"
} }

View File

@ -160,7 +160,8 @@
"TerritoryId": 141, "TerritoryId": 141,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -39,7 +39,8 @@
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -30,7 +30,8 @@
"TerritoryId": 141, "TerritoryId": 141,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -67,6 +67,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true, "Enabled": true,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"(Phase 1) Healer NPCs are only killed after the boss dies - allied NPCs will kill them eventually; all NPCs need to be killed for the duty to complete" "(Phase 1) Healer NPCs are only killed after the boss dies - allied NPCs will kill them eventually; all NPCs need to be killed for the duty to complete"
] ]

View File

@ -66,7 +66,8 @@
"TerritoryId": 152, "TerritoryId": 152,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -86,6 +86,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true, "Enabled": true,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"AI will kill initial adds before the boss, but not switch target whenever new enemies spawn; all NPCs need to be killed for the duty to complete" "AI will kill initial adds before the boss, but not switch target whenever new enemies spawn; all NPCs need to be killed for the duty to complete"
] ]

View File

@ -159,7 +159,11 @@
"Z": -805.478 "Z": -805.478
}, },
"TerritoryId": 140, "TerritoryId": 140,
"InteractionType": "SinglePlayerDuty" "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": {
"Enabled": true,
"TestedBossModVersion": 292
}
} }
] ]
}, },

View File

@ -105,7 +105,8 @@
"TerritoryId": 1053, "TerritoryId": 1053,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -68,6 +68,15 @@
{ {
"Sequence": 3, "Sequence": 3,
"Steps": [ "Steps": [
{
"Position": {
"X": -561.9863,
"Y": 9.919454,
"Z": 66.29564
},
"TerritoryId": 152,
"InteractionType": "WalkTo"
},
{ {
"DataId": 1008276, "DataId": 1008276,
"Position": { "Position": {

View File

@ -78,6 +78,10 @@
"StopDistance": 1, "StopDistance": 1,
"TerritoryId": 156, "TerritoryId": 156,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": {
"Enabled": true,
"TestedBossModVersion": 292
},
"Fly": true "Fly": true
} }
] ]

View File

@ -71,6 +71,14 @@
}, },
"TerritoryId": 147, "TerritoryId": 147,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": {
"Enabled": true,
"TestedBossModVersion": 292,
"Notes": [
"Will target Eline first (other NPCs later), and move to some -other- group of NPCs; only re-targets once they're at 1 HP (for Eline) or die",
"If the target isn't in melee range but other NPCs are, whether any AOEs are used for nearby enemies seems random"
]
},
"Fly": true, "Fly": true,
"AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant" "AetheryteShortcut": "Northern Thanalan - Ceruleum Processing Plant"
} }

View File

@ -97,7 +97,8 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"Fly": true, "Fly": true,
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -60,7 +60,8 @@
"TerritoryId": 401, "TerritoryId": 401,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -80,7 +80,8 @@
"[Ishgard] The Tribunal" "[Ishgard] The Tribunal"
], ],
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -30,7 +30,8 @@
"TerritoryId": 145, "TerritoryId": 145,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -80,7 +80,8 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"DisableNavmesh": true, "DisableNavmesh": true,
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -76,7 +76,8 @@
"TerritoryId": 418, "TerritoryId": 418,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -58,7 +58,8 @@
"Emote": "lookout", "Emote": "lookout",
"StopDistance": 0.25, "StopDistance": 0.25,
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -49,7 +49,8 @@
"[Idyllshire] Epilogue Gate (Eastern Hinterlands)" "[Idyllshire] Epilogue Gate (Eastern Hinterlands)"
], ],
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -70,7 +70,8 @@
"TerritoryId": 402, "TerritoryId": 402,
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": true "Enabled": true,
"TestedBossModVersion": 292
} }
} }
] ]

View File

@ -87,6 +87,7 @@
"Comment": "Estinien vs. Arch Ultima", "Comment": "Estinien vs. Arch Ultima",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": false, "Enabled": false,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"AI doesn't move automatically for the first boss", "AI doesn't move automatically for the first boss",
"AI doesn't move automatically for the dialogue with gaius on the bridge", "AI doesn't move automatically for the dialogue with gaius on the bridge",

View File

@ -48,6 +48,7 @@
"InteractionType": "SinglePlayerDuty", "InteractionType": "SinglePlayerDuty",
"SinglePlayerDutyOptions": { "SinglePlayerDutyOptions": {
"Enabled": false, "Enabled": false,
"TestedBossModVersion": 292,
"Notes": [ "Notes": [
"Doesn't walk to the teleporter to finish the duty" "Doesn't walk to the teleporter to finish the duty"
] ]

View File

@ -1285,6 +1285,10 @@
"maximum": 1, "maximum": 1,
"description": "If a quest has multiple solo instances (which affects 5 quests total), indicates which one this is" "description": "If a quest has multiple solo instances (which affects 5 quests total), indicates which one this is"
}, },
"TestedBossModVersion": {
"type": "number",
"minimum": 292
},
"$": { "$": {
"type": "string" "type": "string"
} }

View File

@ -9,7 +9,7 @@ internal sealed class UniqueStartStopValidator : IQuestValidator
{ {
public IEnumerable<ValidationIssue> Validate(Quest quest) public IEnumerable<ValidationIssue> Validate(Quest quest)
{ {
if (quest.Id is SatisfactionSupplyNpcId) if (quest.Id is SatisfactionSupplyNpcId or AlliedSocietyDailyId)
yield break; yield break;
var questAccepts = var questAccepts =

View File

@ -34,7 +34,9 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent
(EClassJob.BlackMage, "Magical Ranged Role Quests"), (EClassJob.BlackMage, "Magical Ranged Role Quests"),
]; ];
#if false
private readonly string[] _retryDifficulties = ["Normal", "Easy", "Very Easy"]; private readonly string[] _retryDifficulties = ["Normal", "Easy", "Very Easy"];
#endif
private readonly TerritoryData _territoryData; private readonly TerritoryData _territoryData;
private readonly QuestRegistry _questRegistry; private readonly QuestRegistry _questRegistry;
@ -263,12 +265,19 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent
using (ImRaii.PushIndent(ImGui.GetFrameHeight() + ImGui.GetStyle().ItemInnerSpacing.X)) using (ImRaii.PushIndent(ImGui.GetFrameHeight() + ImGui.GetStyle().ItemInnerSpacing.X))
{ {
ImGui.AlignTextToFramePadding(); using (_ = ImRaii.PushColor(ImGuiCol.Text, ImGuiColors.DalamudRed))
ImGui.TextColored(ImGuiColors.DalamudRed, {
"Work in Progress: For now, this will always use BossMod for combat."); ImGui.TextUnformatted("Work in Progress:");
ImGui.BulletText("Will always use BossMod for combat (ignoring the configured combat module).");
ImGui.BulletText("Only a small subset of quest battles have been tested - most of which are in the MSQ.");
ImGui.BulletText("When retrying a failed battle, it will always start at 'Normal' difficulty.");
ImGui.BulletText("Please don't enable this option when using a BossMod fork (such as Reborn);\nwith the combat changes, it is unlikely to be compatible.");
}
#if false
using (ImRaii.Disabled(!runSoloInstancesWithBossMod)) using (ImRaii.Disabled(!runSoloInstancesWithBossMod))
{ {
ImGui.Spacing();
int retryDifficulty = Configuration.SinglePlayerDuties.RetryDifficulty; int retryDifficulty = Configuration.SinglePlayerDuties.RetryDifficulty;
if (ImGui.Combo("Difficulty when retrying a quest battle", ref retryDifficulty, _retryDifficulties, if (ImGui.Combo("Difficulty when retrying a quest battle", ref retryDifficulty, _retryDifficulties,
_retryDifficulties.Length)) _retryDifficulties.Length))
@ -277,6 +286,7 @@ internal sealed class SinglePlayerDutyConfigComponent : ConfigComponent
Save(); Save();
} }
} }
#endif
} }
ImGui.Separator(); ImGui.Separator();